// pages/order/order.js
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    order: [],
    totalValue: 0, //总数量
    show: false, //popor
  },

  getOrderList() {
    wx.cloud.callFunction({
      name: 'nine_thirth',
      config: {
        env: app.globalData.env
      },
      data: {
        cloud_function: "getOrderList",
      }
    }).then((resp) => {
      console.log("信息：", resp)
      if (resp.result.data.status == 200) {
        let order = resp.result.data.data
        this.setData({
          order: order
        })
      }
    }).catch((e) => {
      console.error('获取数据失败:', e);
    });
  },

  onChange: function (e) {
    let that = this;
    let id = e.currentTarget.dataset.id;
    let name = e.currentTarget.dataset.name;
    let value = Number(e.detail);
    let shoppingCar = e.currentTarget.dataset.shoppingcar
    if (value == 200) {
      wx.showToast({
        title: '有这么厉害呀',
        icon: 'none'
      })
    }
    // console.log(shoppingCar);
    let obj = {
      id: id,
      value: value,
      name: name
    };
    let order = this.data.order;
    let foundIndex = order.findIndex(item => item.id === id);
    if (shoppingCar == "shoppingCar" && value == 0) {
      wx.showModal({
        title: '提示',
        content: '确定删除' + name + '?',
        complete: (res) => {
          if (res.cancel) {
            that.setData({
              order: order
            });
            return
          }
          if (res.confirm) {
            if (foundIndex !== -1) {
              // 更新已存在的对象
              order[foundIndex] = obj;
            } else {
              // 新增对象
              order.push(obj);
            }
            // 更新 data 中的 order 数组
            that.setData({
              order: order
            });
            // 计算新的总和
            that.calculateTotalValue();
            if (that.data.totalValue == 0) {
              that.onClose()
            }
          }
        }
      })
      return
    }

    if (foundIndex !== -1) {
      // 更新已存在的对象
      order[foundIndex] = obj;
    } else {
      // 新增对象
      order.push(obj);
    }

    // 更新 data 中的 order 数组
    this.setData({
      order: order
    });

    // 计算新的总和
    this.calculateTotalValue();
  },

  calculateTotalValue: function () {
    // 使用 reduce 方法计算所有 value 的总和
    let totalValue = this.data.order.reduce((acc, curr) => {
      console.log(acc);
      console.log(curr.value);
      return Number(acc) + Number(curr.value || 0);
    }, 0);

    console.log(totalValue);
    // 检查总和是否等于 1000
    if (totalValue === 1000) {
      wx.showToast({
        title: '量力而行，宝',
        icon: 'none'
      });
    }

    // 更新 data 中的 totalValue
    this.setData({
      totalValue: totalValue
    });
  },

  // 提交
  submit() {
    let that = this
    let totalValue = this.data.totalValue
    if (totalValue == 0) {
      wx.showToast({
        title: '还没选呢！',
        icon: 'none'
      })
      return
    }
    wx.showModal({
      title: '提示',
      content: '确定提交？',
      complete: (res) => {
        if (res.cancel) {
          wx.showToast({
            title: '好吧',
            icon: 'none'
          })
        }

        if (res.confirm) {

          that.addOrders()
        }
      }
    })
  },

  addOrders() {
    let order = this.data.order
    let date = new Date()
    const orders = order.filter(item => item.value > 0);
    wx.cloud.callFunction({
      name: 'nine_thirth',
      config: {
        env: app.globalData.env
      },
      data: {
        cloud_function: "addOrder",
        orders: orders,
        openid: wx.getStorageSync('openid'),
        createTime: date,
        totalValue: this.data.totalValue
      }
    }).then((resp) => {
      // console.log("社团列表信息：", resp)
      wx.showToast({
        title: resp.result.data.message,
        icon: 'none'
      })
      if (resp.result.data.status == 200) {
        let id = resp.result.data.data._id
        setTimeout(function () {
          wx.reLaunch({
            url: '../orderDetail/orderDetail?_id=' + id,
          })
        }, 1000);
      }
      // this.setData({
      //   result: resp.result.data
      // })
    }).catch((e) => {
      console.error('获取活动数据失败:', e);
    });
  },

  showPopup() {
    this.setData({
      show: true
    })
  },

  // 关闭
  onClose() {
    this.setData({
      show: false
    });
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getOrderList()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})